package RRHH_MODELO;

import Conexion.Conexion;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class RHH_PERSONA {

    private int ID;
    private int CI;
    private String LUGAR_EMISION;
    private String PRIMER_NOMBRE;
    private String SEGUNDO_NOMBRE;
    private String PRIMER_APELLIDO;
    private String SEGUNDO_APELLIDO;
    private String EMAIL;
    private String TELEFONO;
    private String CURRICULUM;
    private String FOTO;
    private Conexion con = null;

    public RHH_PERSONA(Conexion con) {
        this.con = con;
    }

    public RHH_PERSONA(int ID, int CI, String LUGAR_EMISION, String PRIMER_NOMBRE, String SEGUNDO_NOMBRE, String PRIMER_APELLIDO, String SEGUNDO_APELLIDO, String CURRICULUM, String EMAIL, String TELEFONO,String FOTO) {
        this.ID = ID;
        this.CI = CI;
        this.LUGAR_EMISION = LUGAR_EMISION;
        this.PRIMER_NOMBRE = PRIMER_NOMBRE;
        this.SEGUNDO_NOMBRE = SEGUNDO_NOMBRE;
        this.PRIMER_APELLIDO = PRIMER_APELLIDO;
        this.SEGUNDO_APELLIDO = SEGUNDO_APELLIDO;
        this.CURRICULUM = CURRICULUM;
        this.EMAIL = EMAIL;
        this.TELEFONO = TELEFONO;
        this.FOTO = FOTO;
    }

    public int Insertar() throws SQLException {        
        String consulta = "insert into BROKER.RHH_PERSONA (ID, CI, LUGAR_EMISION, PRIMER_NOMBRE, SEGUNDO_NOMBRE, PRIMER_APELLIDO, SEGUNDO_APELLIDO, CURRICULUM, EMAIL, TELEFONO, FOTO) VALUES (0," + CI + ",'" + LUGAR_EMISION + "','" + PRIMER_NOMBRE + "','" + SEGUNDO_NOMBRE + "','" + PRIMER_APELLIDO + "','" + SEGUNDO_APELLIDO + "','" + CURRICULUM + "', '"+EMAIL+"', '"+TELEFONO+"',null)";       
        con.EjecutarSentencia(consulta);
        consulta = "select BROKER.RHH_PERSONA_SEQ.currval as ID from dual";
        ResultSet rs = con.EjecutarConsulta(consulta);
        rs.next();
        return rs.getInt("ID");
    }

    public boolean EliminarXid() throws SQLException {
        String consulta = "delete from BROKER.RHH_PERSONA_PROFESION where ID_PERSONA= " + getID();
        con.EjecutarSentencia(consulta);
        consulta = "delete from BROKER.RHH_PERSONA where ID= " + getID();
        con.EjecutarSentencia(consulta);
        return true;
    }
    
    public boolean fotoperfil(String foto) throws SQLException
    {
        String consulta = "update BROKER.RHH_PERSONA set FOTO ='"+foto+"' where ID = "+getID();
        con.EjecutarSentencia(consulta);
        return true;
    }
    
    public boolean update() throws SQLException {
        String consulta = "update BROKER.RHH_PERSONA  set CURRICULUM='"+CURRICULUM+"', CI ="+getCI()+", LUGAR_EMISION= '"+getLUGAR_EMISION()+"', PRIMER_APELLIDO = '"+getPRIMER_APELLIDO()+"', PRIMER_NOMBRE = '"+getPRIMER_NOMBRE()+"', SEGUNDO_APELLIDO= '"+getSEGUNDO_APELLIDO()+"', SEGUNDO_NOMBRE='"+getSEGUNDO_NOMBRE()+"', EMAIL = '"+getEMAIL()+"', TELEFONO = '"+getTELEFONO()+"' where ID= " + getID();
        con.EjecutarSentencia(consulta);
        return true;
    }

    public List<RHH_PERSONA> Todos() throws SQLException {
        String consulta = "select * from BROKER.RHH_PERSONA";
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_PERSONA> lista = Cargar(rs);
        return lista;
    }       
    
    public RHH_PERSONA Buscar(int ci) throws SQLException {
        String consulta = "select * from BROKER.RHH_PERSONA where CI="+ci;
        ResultSet rs = con.EjecutarConsulta(consulta);        
        List<RHH_PERSONA> lista = Cargar(rs);
        if(lista!=null && lista.size()>0)
            return lista.get(0);
        else
            return null;
    }
    public RHH_PERSONA BuscarxID(int id) throws SQLException {
        String consulta = "select * from BROKER.RHH_PERSONA where ID="+id;
        ResultSet rs = con.EjecutarConsulta(consulta);        
        List<RHH_PERSONA> lista = Cargar(rs);
        if(lista!=null && lista.size()>0)
            return lista.get(0);
        else
            return null;
    }

    public List<RHH_PERSONA> Cargar(ResultSet rs) throws SQLException {
        List<RHH_PERSONA> lista = new ArrayList<RHH_PERSONA>();
        while (rs.next()) {
            RHH_PERSONA objeto = new RHH_PERSONA(con);
            objeto.setID(rs.getInt("ID"));
            objeto.setCI(rs.getInt("CI"));
            objeto.setLUGAR_EMISION(rs.getString("LUGAR_EMISION"));
            objeto.setPRIMER_NOMBRE(rs.getString("PRIMER_NOMBRE"));
            objeto.setSEGUNDO_NOMBRE(rs.getString("SEGUNDO_NOMBRE"));
            objeto.setPRIMER_APELLIDO(rs.getString("PRIMER_APELLIDO"));
            objeto.setSEGUNDO_APELLIDO(rs.getString("SEGUNDO_APELLIDO"));
            objeto.setCURRICULUM(rs.getString("CURRICULUM"));
            objeto.setEMAIL(rs.getString("EMAIL"));
            objeto.setTELEFONO(rs.getString("TELEFONO"));
            objeto.setFOTO(rs.getString("FOTO"));
            lista.add(objeto);
        }
        return lista;
    }

    public int getID() {
        return ID;
    }

    public void setID(int ID) {
        this.ID = ID;
    }

    public int getCI() {
        return CI;
    }

    public void setCI(int CI) {
        this.CI = CI;
    }

    public String getLUGAR_EMISION() {
        return LUGAR_EMISION;
    }

    public void setLUGAR_EMISION(String LUGAR_EMISION) {
        this.LUGAR_EMISION = LUGAR_EMISION;
    }

    public String getPRIMER_NOMBRE() {
        return PRIMER_NOMBRE;
    }

    public void setPRIMER_NOMBRE(String PRIMER_NOMBRE) {
        this.PRIMER_NOMBRE = PRIMER_NOMBRE;
    }

    public String getSEGUNDO_NOMBRE() {
        return SEGUNDO_NOMBRE;
    }

    public void setSEGUNDO_NOMBRE(String SEGUNDO_NOMBRE) {
        this.SEGUNDO_NOMBRE = SEGUNDO_NOMBRE;
    }

    public String getPRIMER_APELLIDO() {
        return PRIMER_APELLIDO;
    }

    public void setPRIMER_APELLIDO(String PRIMER_APELLIDO) {
        this.PRIMER_APELLIDO = PRIMER_APELLIDO;
    }

    public String getSEGUNDO_APELLIDO() {
        return SEGUNDO_APELLIDO;
    }

    public void setSEGUNDO_APELLIDO(String SEGUNDO_APELLIDO) {
        this.SEGUNDO_APELLIDO = SEGUNDO_APELLIDO;
    }

    public String getCURRICULUM() {
        return CURRICULUM;
    }

    public void setCURRICULUM(String CURRICULUM) {
        this.CURRICULUM = CURRICULUM;
    }  
    
    public Conexion getCon() {
        return this.con;
    }

    public void setCon(Conexion con) {
        this.con = con;
    }

    public String getEMAIL() {
        return EMAIL;
    }

    public void setEMAIL(String EMAIL) {
        this.EMAIL = EMAIL;
    }      

    public String getTELEFONO() {
        return TELEFONO;
    }

    public void setTELEFONO(String TELEFONO) {
        this.TELEFONO = TELEFONO;
    }

    public String getFOTO() {
        return FOTO;
    }

    public void setFOTO(String FOTO) {
        this.FOTO = FOTO;
    }        
    
}
